﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GOF23.Singleton
{
    /// <summary>
    /// 不完全懒汉式，但不加锁的线程安全
    /// 实现简单，却线程安全
    /// 不是真正意义上的懒汉模式，若单例类还存在其他静态成员，当其他类第一次引用这些成员时候就会创建该instance
    /// 设置instance为readonly
    /// </summary>
    public sealed class Singleton4
    {
        private static readonly Singleton4 instance = new();
        /// <summary>
        /// 显示的静态构造函数，用来告诉编译器在其内容实例化之前不要标记其类型
        /// </summary>
        static Singleton4() { }
        private Singleton4() { }
        public static Singleton4 Instance
        {
            get 
            { 
                return instance; 
            }
        }
    }
}
